Skip to content

Postfix mit saslauth auf Debian einrichten

Diese Konfiguration dient dazu die ausgehenden Emails, also die jenigen die nicht in lokale Fächer gelegt werden, an einen SMTP Server (relayhost) zu übergeben, der SMTP Auth kann.

Zuerst installieren wir die benötigten Debian Pakete um Postfix mit SMTP SASL AUTH zu konfigurieren.

root:~ # apt install postfix libsasl2-modules sasl2-bin

Unter Debian ist Exim der default MTA (Mail Transfer Agent), welcher automatisch nach der Installation von Postfix entfernt wird. Nach der Installation wird auch darauf hingewiesen, dass saslauth nicht aktiviert ist. Dies ändern wir, indem wir die Datei /etc/default/saslauthd öffnen und START=yes setzen.

root:~ # vi /etc/default/saslauthd
...
START=yes
...

Nun starten wir noch den saslauthd daemon mit folgeden Befehl neu.

root:~# systemctl restart saslauthd

Nun konfigurieren wir Postfix für saslauth. Dazu öffnen wir die Datei /etc/postfix/main.cf und fügen folgendes hinzu:

# Den Relayhost (der Server der unsere Emails annehmen soll)  
relayhost = smtp.example.com
....
# SMTP Auth
# SMTP mit SASL-Authentification verwenden
smtp_sasl_auth_enable = yes

# Die Passwoerter stehen in der Datei /etc/postfix/smtp_auth
smtp_sasl_password_maps = hash:/etc/postfix/smtp_auth

# Zusatz-Optionen: Keine anonyme-Anmeldung verwenden
smtp_sasl_security_options = noanonymous

Im nächsten Schritt erstellen wir uns die Datei /etc/postfix/smtp_auth mit folgendem Inhalt:

root:~ # vi /etc/postfix/smtp_auth
smtp.example.com      info@example.com:geheeim

Diese Konfiguration legt für den Server smtp.example.com den Benutzer info@example.com und das Paßwort geheeim an. Damit Postfix die Datei auch versteht, muß diese noch ins hash-Format gewandelt werden:

root:~ # cd /etc/postfix
root:/etc/postfix # postmap smtp_auth

Jetzt ändern wir noch die Dateiberechtigungen und lassen Postfix die Konfiguration neu einlesen.

root:/etc/postfix # chmod 640 smtp_auth*
root:/etc/postfix # postfix reload

Nun testen wir unsere Konfiguration, indem wir eine Nachricht an eine externe Adresse senden. Wenn die Nachricht angekommen ist, war alles erfolgreich :smile:

root:/etc/postfix # echo "Das ist eine Testmail." | mail -s "Testmail" info@example.com